
/**
 * **将时间戳转换成自定义格式**
 * @param {Number} [time] -时间戳
 * @param {String} [type=all] -自定义输出格式，年、月、日、时、分、秒（n、y、r、s、f、m）；默认all输出所有；
 * @param {String} [separator=null] -自定义连接符
 * @returns -返回自定义日期
 * 
 * @example <caption>年-月-日</caption>
 * timeStamp(1618298335,'nyr','-')
 * //return 2020-01-02
 * @example <caption>年、月、日、时、分、秒可任意组合</caption>
 * timeStamp(1618298335,'nr','|')
 * //return 2020|02
 */




const timeStamp=(time,type='all',separator=null)=>{
    let date = new Date(time*1000),
    sep = null;

    let dateArr={
        n : date.getFullYear(),
        y : date.getMonth() + 1,
        r : date.getDate(),
        s : date.getHours(),
        f : date.getMinutes(),
        m : date.getSeconds(),
    }

    // 补位处理
    for(let name in dateArr){
        dateArr[name]=String(dateArr[name]).padStart(2,'0');
    }

    // 分隔符
    if(separator){
        sep=separator;
    }

    // 输出对应数据
    let str='';

    if(type.length>1){
        // 输出多项
        let typeArr=[];
        if(type=='all'){
            // 输出所有项
            for(let name in dateArr){
                typeArr.push(dateArr[name])
            }
        }else{
            // 输出所选项
            for(let i=0; i<type.length; i++){
                for(let name in dateArr){
                    if(name==type[i]){
                        typeArr.push(dateArr[name])
                    }
                }
            }
        }
        str=typeArr.join(sep);
    }else{
        // 输出单项
        for(let name in dateArr){
            if(name==type){
                str=dateArr[name];
            }
        }
    }
    return str;
}

export default timeStamp;